package mediatheque.model;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class GestionnaireModel extends PersonneModel {

	private static final long serialVersionUID = -5680086273015587512L;
	public static final String IDENTIFIANT_ADMIN = "GE-1";
	protected String login;
	protected String motDePasse;
	
	private static int NOMBRE_GESTIONNAIRES = 0;
	
	public GestionnaireModel() {
		
		this("N/A", "N/A", "N/A", "N/A", "N/A", "N/A");
		
	}

	public GestionnaireModel(String login, String motDePasse, String nom, String prenom, String email, String adresse){
		super(nom, prenom, email, adresse);
		this.login = login;
		this.motDePasse = motDePasse;
		
		NOMBRE_GESTIONNAIRES++;
		setIdentifiant(genererIdentifiant());
	}

	public GestionnaireModel(String login, String motDePasse, String nom, String prenom, String email, String adresse, String identifiant){
		super(nom, prenom, email, adresse);
		NOMBRE_GESTIONNAIRES++;
		this.login = login;
		this.motDePasse = motDePasse;
		setIdentifiant(identifiant);
	}
	private String genererIdentifiant() {
		return "GE-"+NOMBRE_GESTIONNAIRES;
	}

	public String getLogin() {
		return login;
	}
	
	public String getMotDePasse() {
		return motDePasse;
	}
	
	public void setLogin(String login) {
		this.login = login;		
	}
	
	public void setMotDePasse(String motDePasse) {
		this.motDePasse = motDePasse;
	}
	
	@Override
	public String toString() {
		return "Gestionnaire id="+identifiant;
	}
	public boolean ressemble(String login, String nom, String prenom, String email, String identifiant) {
		return (getLogin().toLowerCase().contains(login.toLowerCase()) &&
				getNom().toLowerCase().contains(nom.toLowerCase()) &&
				getPrenom().toLowerCase().contains(prenom.toLowerCase()) &&
				getEmail().toLowerCase().contains(email.toLowerCase()) &&
				getIdentifiant().toLowerCase().contains(identifiant.toLowerCase()));
		
	}
	private void writeObject(ObjectOutputStream oos) throws IOException {
		oos.defaultWriteObject();
		oos.writeObject(new Integer(NOMBRE_GESTIONNAIRES));
	}

	private void readObject(ObjectInputStream ois)
			throws ClassNotFoundException, IOException {
		ois.defaultReadObject();
		NOMBRE_GESTIONNAIRES = (Integer) ois.readObject();
	}
	
}
